Machine vision refers to the automated analysis of an image to determine characteristics of objects and other features shown therein. It is often employed in automated manufacturing lines, where images of components are analyzed to determine placement and alignment before assembly. Machine vision is also used for quality assurance. For example, in the pharmaceutical and food packing industries, images of packages are analyzed to insure that product labels, lot numbers, “freshness” dates, and the like, are properly positioned and legible.
In many machine vision applications, it is essential to in determining the position and orientation of an imaged object. In electronic circuit board assembly, for example, integrated circuit chips must be precisely positioned before they can be soldered into place. Metallic solder pads feature predominantly in images of these components and, as such are often used in determining chip location and orientation. For example, a vision-based automatic surface mounter (SMD) machine typically employs a geometrical-based model of leaded objects to accurately inspect and place leaded objects on a printed circuit board (PCB). A leaded object 900 is an electronic component that has an object body 902 and leads 904, an example of which is depicted in FIG. 9, which is discussed more fully with reference to FIG. 8 hereinafter. The SMD machine places the leaded objects by registering the leaded object 900 with pads on the PCB, such that the centers of feet 906 of the leaded object 900 align with the centers of pads on the PCB within positional tolerances.
Objects whose image is to be analyzed by machine vision typically include calibration targets. Often a cross-shaped symbol or parallel array of dots, such a target facilitates determining the position and orientation of the object in the image.
If the object is composed of lines, such as the calibration target, there are several known approaches to the problem of finding the angle of a line in an image. One of the best known techniques is the Hough line-transform. The Hough line-transform transforms characteristics of edge points from image into line characteristics, and represents the line characteristics on a Hough space, where a point in the Hough space represents a line. Though often used, the Hough transform can require significant computation resources and time. Another technique to find lines is described in Machine Vision Method for Identifying Collinear sets of Points from an Image, U.S. Pat. No. 6,075,881. The '881 patent employs an angle-finding phase and a line-finding phase to find the lines. During the angle-finding phase, the angular orientation of a predominant line is estimated by projecting data points at multiple angles, (i.e., summed in the direction of the projection, where projection is a term known in the art and described at B. K. D. Horn, “Robot Vision,” MIT Press, London England, 1985, Section 3.3 pp. 53-57). An angle of the predominant line is used by the line finding-phase to find lines by identifying sets of data points aligned with the angle. The line finding phase projects the data points at the angle, and the lines are located at peaks in the projections, as is further described in the '881 patent. Both of these methods, however, are directed at finding lines, and may not work in all applications, such as for short lines or noisy images, for example. Short lines are difficult to identify because not enough edges accumulate in a Hough bin or not enough data points cluster in the projection, for example. Further, it is difficult to identify lines from noisy images containing the lines, such as images of specularly reflecting leads, where specularity is known in the at and is described further hereinafter. The noise masks the lines, thus, making it difficult to identify the lines amidst a noisy Hough space or a noisy projection, for example.
Another known method uses the angle of strong edge features to determine the orientation. Typically, edge detection is performed on the image, and the results are stored in an edge image. The edges within the edge image are projected at various angles, such as through a Radon transform, for example. Peaks in the Radon transform indicate the possible presence of lines that correspond to the angles of the image or objects in the image that have prominent edge patterns. Angles of images and some objects can be determined from projecting edges, but the method is also susceptible to be misled by stray edges and noise.